A storage area network (SAN) may be used to couple one or more host devices with one or more storage devices in a manner that allows reconfiguring connections without having to physically disconnect and reconnect cables from and to ports of the devices. A storage area network may be implemented using one or more switches to which the storage devices and the host devices are coupled. The storage area network may be essentially transparent to the devices so that the devices operate in a manner identical or similar to their operation when directly connected to each other. The switches may be programmed to allow connections between specific ports of devices coupled to the switches. A port that can initiate a data-path connection is called an “initiator” port while the other port may be deemed a “target” port.
Referring to FIG. 1, a storage area network 20 is shown as having a plurality of host devices 22-24 and a plurality of storage devices 26-28 coupled thereto. Each of the devices 22-24, 26-28 has a corresponding port that is physically coupled to switches used to implement the storage area network 20. The switches may be separately programmed by one of the devices 22-24, 26-28 or by a different device (not shown). Programming the switches may include setting up specific zones that describe allowable data-path connections (which ports may form a data-path connection) and possible allowable initiator ports of those configurations. For example, there may be a zone for connecting the port of the host 22 with the port of the storage device 28. Upon becoming activated (e.g., powering up), the host 22 and the storage device 28 may send appropriate signals to the switch(es) of the storage area network 20, and each other, which then allows the host 22 to initiate a data-path connection between the port of the host 22 and the port of the storage device 28. Zones may be defined in terms of a unique identifier associated with each of the ports, such as such as a 64-bit world-wide port name (WWPN).
In some cases, it may be desirable to replace or at least augment a storage device coupled to the storage area network 20. However, since each port of each storage device has a unique identifier (e.g., WWPN), and since the zones are programmed into the switch(es) of the storage area network 20 using the unique identifiers, using a new storage device could require reprogramming all of the hosts coupled to the old storage device and/or could require adding new zones for the new storage device, one or both of which may be unacceptable. For example, there may be instances where it is not acceptable to have any appreciable downtime of mission-critical applications running on hosts.
Accordingly, it would be desirable to be able to provide a mechanism for seamlessly migrating data and redirecting I/O (input/output) operations for storage devices coupled to a storage area network, for example, without requiring reprogramming of hosts to change pathing information.